const db = wx.cloud.database();
const app = getApp();
var tag = 0;
var arr = [];
Page({
  data: {
    question: [],
    choose: [],
    tags: 0,
    answer: '',
    pdColor:'',
    pdText: '',
    nextText: '下一题',
    nextColor: 'red'

  },

  before: function(e) {
    this.setData({
      pdColor: '' ,
      nextText: '下一题',
      nextColor: 'red',
      pdText: ''
    })
    tag = tag - 1;
    if (tag < 0) {
      wx.showToast({
        title: '已经是第一题！',
        icon: 'none',
        duration: 2000
      })
      tag = 0;
    } else {
      this.setData({
        tags: tag,
      })
    }
  },
  // 加入学生错题库
  errorGo(e){
    this.setData({
      pdColor: 'red',
      pdText: 'white'
    })
     // 添加判断 choose 为后面 判断是否题目都做了 做准备
     let pdchoos = this.data.question[this.data.tags].pd.every(v => !(v.checked))
    if(pdchoos){
      this.setData({
       choose:[...this.data.choose,true]
     })
    }
    // 只要点击了就修改 修改选中
    this.data.question[this.data.tags].pd[0].checked = false
    this.data.question[this.data.tags].pd[1].checked = true
    this.setData({
      question: this.data.question
    })
    var item = e.currentTarget.dataset.item
    item['id']=  item['_id']
    // 删除系统会自动加上的id 以免报错
    delete item['_id']
    delete item['_openid']
    console.log(item);
    db.collection('error').where({
      id:item['id']
    }).get({
      success:res=>{
        // 已加入 错题表 就不加了
        if(res.data.length > 0){
          return
        }

        db.collection('error').add({
          data:{
            ...item
          }
        }).then(res1 => {
          console.log(res1);
        }).catch(err2 => {
         console.log(err2);
        })
        
    }
    })
  },
  // 题目正确 可以计分
  successGo(e) {
    this.setData({
      pdColor: 'green',
      pdText: 'white'
    })
    // 添加判断 choose 为后面 判断是否题目都做了 做准备
    let pdchoos = this.data.question[this.data.tags].pd.every(v => !(v.checked))

    if(pdchoos){
      this.setData({
      choose:[...this.data.choose,true],
    })
    }
      // 只要点击了就修改 修改选中
      this.data.question[this.data.tags].pd[0].checked = true
      this.data.question[this.data.tags].pd[1].checked = false
      this.setData({
        question: this.data.question
      })
    var item = e.currentTarget.dataset.item
    item['id']=  item['_id']
    // 删除系统会自动加上的id 以免报错
    delete item['_id']
    delete item['_openid']
    console.log(item);
    db.collection('error').where({
      id:item['id']
    }).get({
      success:res=>{
        // 已经删除了的 就不再删了
        if(res.data.length < 0){
          return
        }
        // 删除
        db.collection('error').where({
          id:item['id']
        }).remove().then(res1 => {
          console.log(res1);
        }).catch(err2 => {
         console.log(err2);
        })   
    }
    })
  },
  next: function(e) {
    this.setData({
      pdColor: '',
      pdText: ''
    })
    tag = tag + 1;
    // 提交 按钮生成
    if (tag > this.data.question.length -2 ) {
          this.setData({
                  nextText: '提交',
                  nextColor: 'green'
                })
    }
    // 提交 批改后的作业
    console.log(this.data.question.length);
    if (tag > this.data.question.length - 1) {
      wx.showModal({
        title: '注意',
        content: '是否确定试卷批改的结果？'
      }).then((go) => {
        if (go.confirm) {
            if( this.data.question.length === this.data.choose.length){
          // 答题完毕 把记录好的题目表 生成为 作业单
          db.collection('Fallibility').add({
            data:{...this.data.question}
          }).then(() => {
            // 提交成功 
            //计算分数
            let fen = 100;
            this.data.question.forEach(v =>{
              if (v.pd[1].checked) {
                fen -= 2
              }
            })
            //删除旧分数
            wx.removeStorageSync('fenShu')
            //插入新分数
            wx.setStorageSync('fenShu', fen)
            // 上次成绩表
            db.collection('gradeTable').add({
              data:{...this.data.question}
            }).then(res =>{
              // 回滚到主页
            wx.reLaunch({
              url: '/pages/teacher/teacher',
            })
            })
          })
          return
        }
        wx.showToast({
          title:'请批改所有题目！',
          icon:'none'
        })
        }
      
      })
      
      tag = this.data.question.length - 1
    } else {
      this.setData({
        tags: tag
      })
    }
  },

  choose: function(res) {

    console.log(ansArr)
    arr.splice(this.data.tags,1,true)
    this.setData({
      choose:arr
    })
    console.log(this.data.choose)
    db.collection('userInfo').get({
      success:res=>{
        if(res.data.length > 0){
          db.collection('userInfo').doc(res.data[0]._id).update({
            data:{
              score:db.command.inc(1)
            }
          }
            )
          
        }
      }
    })
    
    var index = res.currentTarget.dataset.index; //本次点击的下标
    var touch = res.currentTarget.dataset.value
    this.setData({
      answer: this.data.question[tag].answer,
    })

    let mTag = this.data.tags;
    let chooseArr = this.data.question[mTag].options;
    let nowChecked = 'question[' + mTag + '].options'; //setData改变部分数据
    if (chooseArr[index].checked) return; //选择当前已经选择的返回
    chooseArr.forEach(item => { //遍历选项，将其他选项设置为false（单选）
      item.checked = false
    })
    chooseArr[index].checked = true;
    this.setData({
      [nowChecked]: chooseArr,
    })
    console.log(res)
    console.log(this.data.question[mTag].options)

  },

  onLoad: function(options) {
    tag = 0
    db.collection('Fallibility').get({
      success: e => {
        console.log(e)
        // 取最新的数据
        delete e.data[e.data.length-1]._id
        delete e.data[e.data.length-1]._openid
        for (let i in e.data[e.data.length-1]){
          this.data.question.push(e.data[e.data.length-1][i])
        }
        for (let i = 0; i < this.data.question.length;i++){
        this.data.question[i]['pd'] = []
        this.data.question[i]['pd'].push({
          checked:false,
          value:'yes'
        })
        this.data.question[i]['pd'].push({
          checked:false,
          value:'no'
        })
      }
        this.setData({
          question: this.data.question
        })
      },
      fail: console.error
    })

    
  },

})